# main_consumer.py
from kafka_consumer import KafkaConsumerWrapper
from utils.handlers import handle_message
import config
import sys
import signal

consumer = KafkaConsumerWrapper(message_handler=handle_message)
def signal_headler(sig,frame):
    print("🛑 Received termination signal, shutting down consumer...")
    consumer.shutdown()
    sys.exit(0)

# 注册信号处理器
# signal_handler 是你自己在程序中定义的函数，但它被 signal 标准库注册为“系统信号触发时要执行的函数”。
signal.signal(signal.SIGINT, signal_headler)   # Ctrl+C
signal.signal(signal.SIGTERM, signal_headler)  # kill 信号

if __name__ == "__main__":
    # consume() 方法会订阅你传入的 topic（注意是 list 类型），然后开始一个死循环 while True 来不断从 Kafka 中拉取数据并处理。
    consumer.consume([config.TOPIC_NAME])
